1. Field of the Invention
This invention relates to computer circuitry and, more particularly, to computer bus interface circuitry.
2. History of the Prior Art
Computers utilize buses, sets of signal lines, for carrying the information from one computer component to another. There have been many computer buses designed. One of these buses which is defined by an industry specification is the "NuBus", see NuBus -- A Simple 32-Bit Backplane Bus P1196 Specification, Draft 2.0, IEEE P1196 Working Group, Dec. 15, 1986. The specification for the NuBus defines a computer backplane bus optimized for transfers of thirty-two bit words and multiprocessor operations. The NuBus is designed to connect between a number of computer devices termed "boards" or "modules" for transferring information between such devices. In the vernacular of the NuBus specification, a bus device which initiates a transaction is called a "master" and a bus device which responds to a transaction called a "slave".
The only transfers allowed by the NuBus are a read operation, a write operation, and block transfer versions of each of the read and write operations. A block transfer is one in which a single starting address conveyed by a master board identifies multiple data items residing in sequential addresses which are to be communicated between the master and slave boards. Blocks transfers allow the more rapid transfer of information than do the normal read and write operations conducted on the NuBus because up to sixteen words of data residing at sequential addresses may be moved without having to transmit more than a single starting address or to arbitrate for the use of the bus between words of data.
An unfortunate problem encountered in utilizing the NuBus is that not all computer devices which have been designed to be connected to the NuBus are capable of accomplishing block transfers of information. Moreover, even a particular board designed to support block transfers on the NuBus does not necessarily support block moves with respect to all addresses. Although it is conceivable that a programmer would be able to devise a program which would utilize block transfers between devices only when those devices were able to accomplish block transfers, such a program would be very complicated to write, would require that the programmer know the abilities of each board which might be connected to the NuBus, and would slow down block moves which are useful only because they are fast. Consequently, it is desirable that the interface between a board and a NuBus provides some means for handling block transfers when not all computer devices connected to the NuBus support such block transfers in a manner transparent to the software implementing a particular block transfer. Thus, a programmer may program a block transfer; and the interface hardware may perform a block transfer on the NuBus if it can be supported, or accomplish the transfer in the most rapid means possible under the circumstances if the block more capability does not exist.